import { debounce, debounceEvents } from '../js/debounce.js';

export default {
  // 在页面创建时处理防抖
  onLoad() {
    // 如果页面有定义需要防抖的事件，进行处理
    if (this.debounceMethods) {
      Object.keys(this.debounceMethods).forEach(methodName => {
        const delay = this.debounceMethods[methodName];
        if (this[methodName]) {
          this[methodName] = debounce(this[methodName], delay);
        }
      });
    }
  },
  
  // 对常用事件进行全局防抖处理
  created() {
    // 遍历需要防抖的事件
    Object.keys(debounceEvents).forEach(eventName => {
      const originalMethod = this[`on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`];
      if (originalMethod) {
        // 用防抖函数包装原始方法
        this[`on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`] = debounce(
          originalMethod, 
          debounceEvents[eventName]
        );
      }
    });
  }
};
    